package com.wande.dataplatform.domain.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * API统计数据传输对象
 *
 * @author wande
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApiStatisticsDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 总调用次数
     */
    private Long totalCalls;

    /**
     * 成功次数
     */
    private Long successCalls;

    /**
     * 失败次数
     */
    private Long failedCalls;

    /**
     * 成功率(%)
     */
    private BigDecimal successRate;

    /**
     * 平均响应时间(毫秒)
     */
    private Long avgResponseTime;

    /**
     * 最大响应时间(毫秒)
     */
    private Long maxResponseTime;

    /**
     * 最小响应时间(毫秒)
     */
    private Long minResponseTime;

    /**
     * 今日调用次数
     */
    private Long todayCalls;

    /**
     * 本周调用次数
     */
    private Long weekCalls;

    /**
     * 本月调用次数
     */
    private Long monthCalls;
}
